package linz;

import linz.log.FuClass;
import linz.log.ZiClass;

import java.util.ArrayList;
import java.util.List;


/**
 * Java 限定操作符 todo 【还是不太理解】
 */
public class GenericityJava {

    public static void main(String[] args) {
        // 只读（生产） in 协表
        List<? extends  FuClass> list = new ArrayList<ZiClass>();

        FuClass fuClass = new FuClass();
        ZiClass ziClass = new ZiClass();

        FuClass fuClass01 = list.get(0);
        //不能修改
      /*  list.add(fuClass); // err
        list.add(ziClass); // err*/


        // 只写（消费）out 逆变
        List<? super ZiClass > list2 = new ArrayList<FuClass>();
        list2.add(ziClass);
//        list2.add(fuClass); err

        //不能获取
      /*  ZiClass z = list2.get(0); // err
        FuClass f = list2.get(0); // err */

    }
}
